package cn.b.sky.mes.pp.model;

import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.Date;

import cn.b.sky.common.model.ImeCommon;

/**
 * 
 * <strong>Title : ProductionOrderPlan.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.pp.model<br>
 * </strong> <strong>Description : </strong>生产订单计划<br>
 * <strong>Create on : 2016年1月19日 下午3:02:28<br>
 * </strong>
 * <p>
 * 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
public class ProductionOrderPlan extends ImeCommon implements Serializable {

  /**
   * @Fields serialVersionUID : 序列化ID
   * @creator :dapeng.li
   */
  private static final long serialVersionUID = -4766471627169640290L;

  /**
   * 主键ID
   */
  private Long id;

  /**
   * 订单编号
   */
  private String productionOrderNum;

  /**
   * 订单类型编号
   */
  private String orderTypeCode;

  /**
   * 订单类型描述
   */
  private String orderTypeText;

  /**
   * 工艺编号
   */
  private String processCode;

  /**
   * 工艺版本
   */
  private String processRev;

  /**
   * 工艺描述
   */
  private String processText;

  /**
   * 工作中心类型编号
   */
  private String workCenterTypeCode;

  /**
   * 工作中心类型描述
   */
  private String workCenterTypeText;

  /**
   * 工作中心编号
   */
  private String workCenterCode;

  /**
   * 工作中心描述
   */
  private String workCenterText;

  /**
   * 计划日期
   */
  private Date plannedStartDate;

  /**
   * 计划日期(字符串类型，主要用于导出)
   */
  private String plannedStartDateStr;

  /**
   * 物料编号
   */
  private String materialCode;

  /**
   * 物料描述
   */
  private String materialText;

  /**
   * 订单状态编号
   */
  private String statuseCode;

  /**
   * 订单状态描述
   */
  private String statuseText;

  /**
   * 订单总数量
   */
  private Float totalPlannedQuantity;

  /**
   * 未完成数量
   */
  private Float uncompletedQuantity;

  /**
   * 计划数量
   */
  private Float plannedQuantity;

  /**
   * 计划时长
   */
  private Integer plannedSeconds;

  /**
   * 计划时长(分钟)
   */
  private String plannedMinutesStr;

  /**
   * 需求日期
   */
  private Date requirementDate;

  /**
   * 需求日期(日期字符型-主要用于数据导出时的处理)
   */
  private String requirementDateStr;

  /**
   * 订单计划开始时间
   */
  private Date orderPlannedstartDateTime;

  /**
   * 订单计划结束时间
   */
  private Date orderPlannedendDateTime;

  /**
   * 计划开始时间
   */
  private Date plannedstartDateTime;

  /**
   * 计划结束时间
   */
  private Date plannedendDateTime;

  /**
   * 生产批次号
   */
  private String productionLotNum;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getProductionOrderNum() {
    return productionOrderNum;
  }

  public void setProductionOrderNum(String productionOrderNum) {
    this.productionOrderNum = productionOrderNum;
  }

  public String getOrderTypeCode() {
    return orderTypeCode;
  }

  public void setOrderTypeCode(String orderTypeCode) {
    this.orderTypeCode = orderTypeCode;
  }

  public String getOrderTypeText() {
    return orderTypeText;
  }

  public void setOrderTypeText(String orderTypeText) {
    this.orderTypeText = orderTypeText;
  }

  public String getProcessCode() {
    return processCode;
  }

  public void setProcessCode(String processCode) {
    this.processCode = processCode;
  }

  public String getProcessRev() {
    return processRev;
  }

  public void setProcessRev(String processRev) {
    this.processRev = processRev;
  }

  public String getProcessText() {
    return processText;
  }

  public void setProcessText(String processText) {
    this.processText = processText;
  }

  public String getWorkCenterTypeCode() {
    return workCenterTypeCode;
  }

  public void setWorkCenterTypeCode(String workCenterTypeCode) {
    this.workCenterTypeCode = workCenterTypeCode;
  }

  public String getWorkCenterTypeText() {
    return workCenterTypeText;
  }

  public void setWorkCenterTypeText(String workCenterTypeText) {
    this.workCenterTypeText = workCenterTypeText;
  }

  public String getWorkCenterCode() {
    return workCenterCode;
  }

  public void setWorkCenterCode(String workCenterCode) {
    this.workCenterCode = workCenterCode;
  }

  public String getWorkCenterText() {
    return workCenterText;
  }

  public void setWorkCenterText(String workCenterText) {
    this.workCenterText = workCenterText;
  }

  public Date getPlannedStartDate() {
    return plannedStartDate;
  }

  public void setPlannedStartDate(Date plannedStartDate) {
    this.plannedStartDate = plannedStartDate;
  }

  public String getMaterialCode() {
    return materialCode;
  }

  public void setMaterialCode(String materialCode) {
    this.materialCode = materialCode;
  }

  public String getMaterialText() {
    return materialText;
  }

  public void setMaterialText(String materialText) {
    this.materialText = materialText;
  }

  public String getStatuseCode() {
    return statuseCode;
  }

  public void setStatuseCode(String statuseCode) {
    this.statuseCode = statuseCode;
  }

  public String getStatuseText() {
    return statuseText;
  }

  public void setStatuseText(String statuseText) {
    this.statuseText = statuseText;
  }

  public Float getTotalPlannedQuantity() {
    return totalPlannedQuantity;
  }

  public void setTotalPlannedQuantity(Float totalPlannedQuantity) {
    this.totalPlannedQuantity = totalPlannedQuantity;
  }

  public Float getUncompletedQuantity() {
    return uncompletedQuantity;
  }

  public void setUncompletedQuantity(Float uncompletedQuantity) {
    this.uncompletedQuantity = uncompletedQuantity;
  }

  public Float getPlannedQuantity() {
    return plannedQuantity;
  }

  public void setPlannedQuantity(Float plannedQuantity) {
    this.plannedQuantity = plannedQuantity;
  }

  public Integer getPlannedSeconds() {
    return plannedSeconds;
  }

  public void setPlannedSeconds(Integer plannedSeconds) {
    this.plannedSeconds = plannedSeconds;
    if (null != this.plannedSeconds) {
      DecimalFormat df = new DecimalFormat("#.0");
      this.plannedMinutesStr = df.format(this.plannedSeconds / 60.0);
    }
  }

  public Date getRequirementDate() {
    return requirementDate;
  }

  public void setRequirementDate(Date requirementDate) {
    this.requirementDate = requirementDate;
  }

  public Date getOrderPlannedstartDateTime() {
    return orderPlannedstartDateTime;
  }

  public void setOrderPlannedstartDateTime(Date orderPlannedstartDateTime) {
    this.orderPlannedstartDateTime = orderPlannedstartDateTime;
  }

  public Date getOrderPlannedendDateTime() {
    return orderPlannedendDateTime;
  }

  public void setOrderPlannedendDateTime(Date orderPlannedendDateTime) {
    this.orderPlannedendDateTime = orderPlannedendDateTime;
  }

  public Date getPlannedstartDateTime() {
    return plannedstartDateTime;
  }

  public void setPlannedstartDateTime(Date plannedstartDateTime) {
    this.plannedstartDateTime = plannedstartDateTime;
  }

  public Date getPlannedendDateTime() {
    return plannedendDateTime;
  }

  public void setPlannedendDateTime(Date plannedendDateTime) {
    this.plannedendDateTime = plannedendDateTime;
  }

  public String getProductionLotNum() {
    return productionLotNum;
  }

  public void setProductionLotNum(String productionLotNum) {
    this.productionLotNum = productionLotNum;
  }

  public String getPlannedStartDateStr() {
    return plannedStartDateStr;
  }

  public void setPlannedStartDateStr(String plannedStartDateStr) {
    this.plannedStartDateStr = plannedStartDateStr;
  }

  public String getRequirementDateStr() {
    return requirementDateStr;
  }

  public void setRequirementDateStr(String requirementDateStr) {
    this.requirementDateStr = requirementDateStr;
  }

  public String getPlannedMinutesStr() {
    return plannedMinutesStr;
  }

  public void setPlannedMinutesStr(String plannedMinutesStr) {
    this.plannedMinutesStr = plannedMinutesStr;
  }

}
